#pragma once

#include "PokerPlayer.h"

class PokerLogic : public BaseLogic<PokerPlayer>
{
public:
    static PokerLogic * shard();
    static void release();
    // 分析手牌
    static void doAnalysis(std::vector< int32_t >& theCards, std::vector<CARDS_DATA>& theCardGroups);
    // 分析出牌或者打算出牌的牌面
    static CARDS_DATA CheckCardType(std::vector< int32_t >& cardsOut);

public:
    CC_DISALLOW_COPY_AND_ASSIGN(PokerLogic);
    // 设定地主席位然后开始出牌
    void setMasterAndStart(uint8_t);
    // 拿到三张底牌，便于刷新UI
    void getBottomCard(int32_t& a, int32_t& b, int32_t& c);
    // 有人胜利, 开始牌局结算
    virtual void over() override;
    // 不换人再来一局
    virtual void onceMore() override;

private:
    PokerLogic();
    virtual ~PokerLogic();

};
